package ai.people.platform.jx.service;

import ai.people.netmon.framework.domain.common.SimpleNameValueRespVO;
import ai.people.netmon.framework.domain.jx.AfricaTerrorismEvent;
import ai.people.netmon.framework.model.response.PageResponse;
import com.alibaba.fastjson.JSONObject;

import java.util.List;
import java.util.Map;

/**
 * @author LiGuanNan
 * @date 2022/6/28 13:43
 */
public interface IAfricaTerrorismService {

    /**
     * 估算事件数
     *
     * @param year    年份
     * @param country 国家
     * @return {@link Integer} 预估事件总数
     */
    Integer calWarning(Integer year, String country);

    /**
     * 非洲恐怖主义事件数据源网站表格
     * @return {@link List}<{@link Map}<{@link String}, {@link Object}>>
     */
    List<Map<String, Object>> webExcel();

    /**
     * 非洲恐怖主义事件表格预览
     * @return {@link List}<{@link Map}<{@link String}, {@link Object}>>
     */
    PageResponse<AfricaTerrorismEvent> eventExcel(Integer pageNo, Integer pageSize, Integer beginYear, Integer endYear);

    /**
     * 非洲恐怖袭击事件概览
     *
     * @return {@link JSONObject}
     */
    JSONObject overView();

    /**
     * 分页查询事件列表
     *
     * @param pageNo   页面编号
     * @param pageSize 页面大小
     * @param country  国家
     * @return {@link PageResponse}<{@link AfricaTerrorismEvent}>
     */
    PageResponse<AfricaTerrorismEvent> queryEventPage(Integer pageNo, Integer pageSize, String country, Integer beginYear, Integer endYear);

    /**
     * 非洲恐怖袭击事件统计数据
     *
     * @param country 国家
     * @return {@link List}<{@link SimpleNameValueRespVO}>
     */
    List<SimpleNameValueRespVO> statistics(String country);
}
